/*
 * Reserva.java
 *
 * Created on 07-jun-2008, 11:18:12
 */
package webadtafa_ec;

import com.sun.rave.faces.data.DefaultSelectItemsArray;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.rave.web.ui.component.Calendar;
import com.sun.rave.web.ui.component.DropDown;
import com.sun.rave.web.ui.component.Form;
import com.sun.rave.web.ui.component.Label;
import com.sun.rave.web.ui.component.RadioButtonGroup;
import com.sun.rave.web.ui.component.StaticText;
import com.sun.rave.web.ui.model.Option;
import com.sun.rave.web.ui.model.SingleSelectOptionsList;
import escr.clases.Captura;
import escr.clases.DatosModElim;
import escr.clases.GuardarDatos;
import escr.clases.IncrementoCodigos;
import escr.clases.ListarDatos;
import escr.clases.ValidacionIngresos;
import escr.persistencia.Especialidad;
import escr.persistencia.Horario;
import escr.persistencia.Horariotarde;
import escr.persistencia.ProEspe;
import escr.persistencia.Profesional;
import escr.persistencia.Turno;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.faces.FacesException;
import javax.faces.event.ValueChangeEvent;
import javax.faces.validator.DoubleRangeValidator;

/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 *
 * @author Aditardo
 */
public class Reserva extends AbstractPageBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    Option Profesion = null;

    private void _init() throws Exception {
        radioTurnDefaultOptions.setOptions(new com.sun.rave.web.ui.model.Option[]{new com.sun.rave.web.ui.model.Option("1", "Mañana"), new com.sun.rave.web.ui.model.Option("2", "Tarde")});
    }
    private DefaultSelectItemsArray dropdown1DefaultItems1 = new DefaultSelectItemsArray();

    public DefaultSelectItemsArray getDropdown1DefaultItems1() {
        return dropdown1DefaultItems1;
    }

    public void setDropdown1DefaultItems1(DefaultSelectItemsArray dsia) {
        this.dropdown1DefaultItems1 = dsia;
    }
    private DefaultSelectItemsArray dropdown1DefaultItems2 = new DefaultSelectItemsArray();

    public DefaultSelectItemsArray getDropdown1DefaultItems2() {
        return dropdown1DefaultItems2;
    }

    public void setDropdown1DefaultItems2(DefaultSelectItemsArray dsia) {
        this.dropdown1DefaultItems2 = dsia;
    }
    private DefaultSelectItemsArray dropdown1DefaultItems3 = new DefaultSelectItemsArray();

    public DefaultSelectItemsArray getDropdown1DefaultItems3() {
        return dropdown1DefaultItems3;
    }

    public void setDropdown1DefaultItems3(DefaultSelectItemsArray dsia) {
        this.dropdown1DefaultItems3 = dsia;
    }
    private DefaultSelectItemsArray dropdown1DefaultItems = new DefaultSelectItemsArray();

    public DefaultSelectItemsArray getDropdown1DefaultItems() {
        return dropdown1DefaultItems;
    }

    public void setDropdown1DefaultItems(DefaultSelectItemsArray dsia) {
        this.dropdown1DefaultItems = dsia;
    }
    private DoubleRangeValidator doubleRangeValidator1 = new DoubleRangeValidator();

    public DoubleRangeValidator getDoubleRangeValidator1() {
        return doubleRangeValidator1;
    }

    public void setDoubleRangeValidator1(DoubleRangeValidator drv) {
        this.doubleRangeValidator1 = drv;
    }
    private StaticText jtsCodigo1 = new StaticText();

    public StaticText getJtsCodigo1() {
        return jtsCodigo1;
    }

    public void setJtsCodigo1(StaticText st) {
        this.jtsCodigo1 = st;
    }
    private StaticText stNomPac = new StaticText();

    public StaticText getStNomPac() {
        return stNomPac;        
    }

    public void setStNomPac(StaticText st) {
        this.stNomPac = st;
    }
    private DropDown ddlEspecialidad = new DropDown();

    public DropDown getDdlEspecialidad() {
        return ddlEspecialidad;
    }

    public void setDdlEspecialidad(DropDown dd) {
        this.ddlEspecialidad = dd;
    }
    private SingleSelectOptionsList ddlProfesionalesDefaultOptions = new SingleSelectOptionsList();

    public SingleSelectOptionsList getDdlProfesionalesDefaultOptions() {
        return ddlProfesionalesDefaultOptions;
    }

    public void setDdlProfesionalesDefaultOptions(SingleSelectOptionsList ssol) {
        this.ddlProfesionalesDefaultOptions = ssol;
    }
    private DropDown ddlProfesionales = new DropDown();

    public DropDown getDdlProfesionales() {
        return ddlProfesionales;
    }

    public void setDdlProfesionales(DropDown dd) {
        this.ddlProfesionales = dd;
    }
    private StaticText jtfHora = new StaticText();
  
//public GroupLayout cd = GroupLayout();    
    public StaticText getJtfHora() {
        return jtfHora;
        
    }
    public void setJtfHora(StaticText st) {
        this.jtfHora = st;
    }
    private StaticText jtfHoraFin = new StaticText();

    public StaticText getJtfHoraFin() {
        return jtfHoraFin;
    }
    
    public void setJtfHoraFin(StaticText st) {
        this.jtfHoraFin = st;
    }
    private Calendar calendar1 = new Calendar();

    public Calendar getCalendar1() {
        return calendar1;
    }

    public void setCalendar1(Calendar c) {
        this.calendar1 = c;
    }
    private StaticText jtsNumTurn = new StaticText();

    public StaticText getJtsNumTurn() {
        return jtsNumTurn;
    }

    public void setJtsNumTurn(StaticText st) {
        this.jtsNumTurn = st;
    }
    private StaticText staticText = new StaticText();

    public StaticText getStaticText() {
        return staticText;
    }

    public void setStaticText(StaticText st) {
        this.staticText = st;
    }
    private StaticText lblEspecialidad = new StaticText();

    public StaticText getLblEspecialidad() {
        return lblEspecialidad;
    }

    public void setLblEspecialidad(StaticText st) {
        this.lblEspecialidad = st;
    }
    private StaticText lblNomProfesional = new StaticText();

    public StaticText getLblNomProfesional() {
        return lblNomProfesional;
    }

    public void setLblNomProfesional(StaticText st) {
        this.lblNomProfesional = st;
    }
    private StaticText lblHorario = new StaticText();

    public StaticText getLblHorario() {
        return lblHorario;
    }

    public void setLblHorario(StaticText st) {
        this.lblHorario = st;
    }
    private StaticText lblTurnosMaximo = new StaticText();

    public StaticText getLblTurnosMaximo() {
        return lblTurnosMaximo;
    }

    public void setLblTurnosMaximo(StaticText st) {
        this.lblTurnosMaximo = st;
    }
    private Label labelEXITO = new Label();

    public Label getLabelEXITO() {
        return labelEXITO;
    }

    public void setLabelEXITO(Label l) {
        this.labelEXITO = l;
    }
    private Label labelNO = new Label();

    public Label getLabelNO() {
        return labelNO;
    }

    public void setLabelNO(Label l) {
        this.labelNO = l;
    }
    private SingleSelectOptionsList radioTurnDefaultOptions = new SingleSelectOptionsList();

    public SingleSelectOptionsList getRadioTurnDefaultOptions() {
        return radioTurnDefaultOptions;
    }

    public void setRadioTurnDefaultOptions(SingleSelectOptionsList ssol) {
        this.radioTurnDefaultOptions = ssol;
    }
    private StaticText stHor_Tar_Inicio = new StaticText();

    public StaticText getStHor_Tar_Inicio() {
        return stHor_Tar_Inicio;
    }

    public void setStHor_Tar_Inicio(StaticText st) {
        this.stHor_Tar_Inicio = st;
    }
    private StaticText stHor_Tar_Fin = new StaticText();

    public StaticText getStHor_Tar_Fin() {
        return stHor_Tar_Fin;
    }

    public void setStHor_Tar_Fin(StaticText st) {
        this.stHor_Tar_Fin = st;
    }
    private RadioButtonGroup radioTurn = new RadioButtonGroup();

    public RadioButtonGroup getRadioTurn() {
        return radioTurn;
    }

    public void setRadioTurn(RadioButtonGroup rbg) {
        this.radioTurn = rbg;
    }

    // </editor-fold>
    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public Reserva() {
    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {

        // Perform initializations inherited from our superclass
        super.init();
        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here

        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("Reserva Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

        // </editor-fold>
        // Perform application initialization that must complete
        // *after* managed components are initialized
        // TODO - add your own initialization code here

        iniciarValores();
        incrementa();
    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
        if (isPostBack() == false) {

            Captura cap = new Captura();
            //ddlEspecialidad.setValue(getSessionBean1().getOpcionesDDL()[0]);
            ddlEspecialidad.setSelected(getSessionBean1().getOpcionesDDL()[0].getValue());
            getSessionBean1().setSelectEspeTMP(getSessionBean1().getOpcionesDDL()[0].getValue().toString());
            getSessionBean1().setEspeSession(cap.getEspecialidad(Integer.parseInt(getSessionBean1().getOpcionesDDL()[0].getValue().toString())));

            calendar1.setValue(new Date());
            DatosProfesional();

            datosHorario(getSessionBean1().getProSession());
            preg();

        } else {


            especialidad();
            fecha();

        }
        lblNomProfesional.setText(getSessionBean1().getProSession().getProPrimerNombre() + " " + getSessionBean1().getProSession().getProApellidoPar());
        lblEspecialidad.setText(getSessionBean1().getEspeSession().getEspNombre());
        lblHorario.setText(getSessionBean1().getProSession().getHorId().getHorId());
        lblTurnosMaximo.setText(getSessionBean1().getProSession().getProTurnomax().toString());
        preg();
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected SessionBean1 getSessionBean1() {
        return (SessionBean1) getBean("SessionBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    /**
     * <p>Return a reference to the scoped data bean.</p>
     *
     * @return reference to the scoped data bean
     */
    protected RequestBean1 getRequestBean1() {
        return (RequestBean1) getBean("RequestBean1");
    }

    public String jliReserva1_action() {
        // TODO: Replace with your code
        return null;
    }

    public String jliSalir_action() {
        // TODO: Replace with your code
        return null;
    }

    public void incrementa() {
        IncrementoCodigos ic = new IncrementoCodigos();
        Integer cc = ic.incrementaTurno();
        cc = cc + 1;
        jtsCodigo1.setText(cc.toString());
    }

    public void iniciarValores() {
        stNomPac.setText(getSessionBean1().getPacienteMy().getPacNombre() + " " + getSessionBean1().getPacienteMy().getPacApellid());
    }

    public void ddlEspecialidad_processValueChange(ValueChangeEvent event) {
        ddlProfesionales.setVisible(true);
        lblTurnosMaximo.setVisible(true);
        radioTurn.setVisible(true);
        lblTurnosMaximo.setVisible(true);
        jtfHora.setVisible(true);
        jtfHoraFin.setVisible(true);
        stHor_Tar_Inicio.setVisible(true);
        stHor_Tar_Fin.setVisible(true);

        Captura lista = new Captura();
        Especialidad tmpEspecialidad = new Especialidad();
        tmpEspecialidad = lista.getEspecialidad(Integer.parseInt(ddlEspecialidad.getValue().toString()));
        getSessionBean1().setEspeSession(tmpEspecialidad);
        List datos = null;
        datos = lista.ListarProfesinales(tmpEspecialidad); //todos los proEspecialidad
        Option[] OpcionesTMP = new Option[datos.size()]; // Inicializar lista de Especialidades
        this.ddlProfesionales = null;
        int var = 0;
        for (Iterator i = datos.iterator(); i.hasNext();) {
            Profesional tpu = (Profesional) i.next();
            OpcionesTMP[var] = new Option(tpu.getProCodigo(), tpu.getProPrimerNombre() + " " + tpu.getProApellidoPar() + " " + tpu.getProApellidoMar());
            var++;
        }
        ddlProfesionalesDefaultOptions.setOptions(OpcionesTMP);
        getSessionBean1().setProSession(lista.getEspecialista(Integer.parseInt(OpcionesTMP[0].getValue().toString())));
        //ddlProfesional.setSubmittedValue(null);
//        ddlProfesionales.setValueBinding(arg0, it);        
    }

    public void DatosProfesional() {

        Captura lista = new Captura();

        //setEspCod(Integer.parseInt(getSessionBean1().getOpcionesDDL()[0].getValue().toString()));
        List datos = null;
        datos = lista.ListarProfesinales(getSessionBean1().getEspeSession()); //todos los proEspecialidad
        Option[] OpcionesTMP = new Option[datos.size()]; // Inicializar lista de Especialidades
        this.ddlProfesionales = null;
        int var = 0;
        for (Iterator i = datos.iterator(); i.hasNext();) {

            Profesional tpu = (Profesional) i.next();

            OpcionesTMP[var] = new Option(tpu.getProCodigo(), tpu.getProPrimerNombre() + " " + tpu.getProApellidoPar() + " " + tpu.getProApellidoMar());
            var++;
        }

        ddlProfesionalesDefaultOptions.setOptions(OpcionesTMP);

        Profesional proTmp = lista.getEspecialista(Integer.parseInt(OpcionesTMP[0].getValue().toString())); //Aca tengo qu enviar el profesional
        getSessionBean1().setProSession(proTmp);




    }

    public void datosHorario(Profesional profe) {

        String result;
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("EEEEE");
        d = calendar1.getSelectedDate();
        result = sdf.format(d);
//txtDia.setText(result);

        Horario hor = null; //guarda el horario de la mañana
        Horariotarde Hora_Tarde = null;// gurada el horario de la tarde
        Horariotarde tmp_Hora_Tarde = null; // variable temporal para capturar horario id de tarde de profesional
        Horario tmpHor = null; // // variable temporal para capturar horario id de mañana de profesional
        DatosModElim captura = new DatosModElim();
        tmpHor = profe.getHorId();
        tmp_Hora_Tarde = profe.getHormId();
        Integer doc = tmpHor.getHorId();

        hor = captura.capturarHorarioTurno(doc);//obtengo el horario de la mañana 
        doc = tmp_Hora_Tarde.getHormId();
        Hora_Tarde = captura.capturarHorarioTurnoTarde(doc); // obtengo el horario de la tarde         
        if (result.equals("lunes")) {
            jtfHora.setText(hor.getHorIniLu());
            
            jtfHoraFin.setText(hor.getHorFinLu());
            stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniLu());
            stHor_Tar_Fin.setText(Hora_Tarde.getHormFinLu());
        } else {
            if (result.equals("martes")) {
                jtfHora.setText(hor.getHorIniMa());
                jtfHoraFin.setText(hor.getHorFinMa());
                stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniMa());
                stHor_Tar_Fin.setText(Hora_Tarde.getHormFinMa());
            } else {
                if (result.equals("miércoles")) {
                    jtfHora.setText(hor.getHorIniMi());
                    jtfHoraFin.setText(hor.getHorFinMi());
                    stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniMi());
                    stHor_Tar_Fin.setText(Hora_Tarde.getHormFinMi());
                } else {
                    if (result.equals("jueves")) {
                        jtfHora.setText(hor.getHorIniJu());
                        jtfHoraFin.setText(hor.getHorFinJu());
                        stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniJu());
                        stHor_Tar_Fin.setText(Hora_Tarde.getHormFinJu());
                    } else {
                        if (result.equals("viernes")) {
                            jtfHora.setText(hor.getHorIniVi());
                            jtfHoraFin.setText(hor.getHorFinVi());
                            stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniVi());
                            stHor_Tar_Fin.setText(Hora_Tarde.getHormFinVi());

                        } else {
                            if (result.equals("sábado")) {
                                jtfHora.setText(hor.getHorIniSa());
                                jtfHoraFin.setText(hor.getHorFinSa());
                                stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniSa());
                                stHor_Tar_Fin.setText(Hora_Tarde.getHormFinSa());
                            } else {
                                if (result.equals("domingo")) {
                                    jtfHora.setText(hor.getHorIniDo());
                                    jtfHoraFin.setText(hor.getHorFinDo());
                                    stHor_Tar_Inicio.setText(Hora_Tarde.getHormIniDo());
                                    stHor_Tar_Fin.setText(Hora_Tarde.getHormFinDo());
                                }
                            }
                        }
                    }
                }
            }
        }


    }

    public void preg() {
        Date d = new Date();
        d = calendar1.getSelectedDate();
        Captura captura = new Captura();
        Integer cod;
        ProEspe tmpPro = new ProEspe();
        tmpPro = _ProEspe(getSessionBean1().getProSession());
        cod = captura.datTurnN(d, tmpPro);
        cod = cod + 1;
        jtsNumTurn.setText(cod.toString());


    }

    private ProEspe _ProEspe(Profesional Profe) {

        ListarDatos control = new ListarDatos();
        List li = control.listarProEspe();
        for (Iterator i = li.iterator(); i.hasNext();) {
            ProEspe tpu = (ProEspe) i.next();

            if (Profe.getProCodigo() == tpu.getProCodigo().getProCodigo()) {

                return tpu;

            }

        }
        return null;


    }

    private void comparar() {
        List obj = null;
        SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        Date d1 = new Date();
        String d2 = new String();
        d1 = calendar1.getSelectedDate();
        d2 = df.format(d1);
        ValidacionIngresos control = new ValidacionIngresos();
        obj = control.buscarNPaciente(getSessionBean1().getPacienteMy(), d1);
        //jlbusuario.setText(obj.getPreCod().toString());


        if (obj == null) {
            String result, DiaElegido, DiaActual;
            Date d = new Date();
            SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); // Formato para comprobacion de fechas
            SimpleDateFormat sdf = new SimpleDateFormat("EEEEE");
            d = calendar1.getSelectedDate();
            result = sdf.format(d);
            //      jtfFech.setText(result);
            Date factual = new Date(); // Fecha Actual del Sistema
            DiaElegido = df2.format(d); // Dia Elegido por el Usuario En formato Establecido
            DiaActual = df2.format(factual);  // Dia Actual del Sistema En formato establecido
            if ((factual.before(d) || DiaElegido.equals(DiaActual)) && (this.radioTurn.getValue().toString().equals("1") && !this.jtfHora.equals("No aten") || this.radioTurn.getValue().toString().equals("2") && !this.stHor_Tar_Inicio.equals("No aten"))) {

                grabar();
                preg();
            } else {

                this.labelNO.setText("** Error en los Datos de Entrada, Por favor Ingrese Nuevamente **");
                this.labelNO.setVisible(true);
                this.labelEXITO.setVisible(false);
            }

        } else {

            this.labelNO.setText("** Error en los Datos de Entrada, Por favor Ingrese Nuevamente **");
            this.labelNO.setVisible(true);
            this.labelEXITO.setVisible(false);

        }
    }

    private void especialidad() {
        Captura lista = new Captura();
        Especialidad tmpEspecialidad = new Especialidad();
        tmpEspecialidad = lista.getEspecialidad(Integer.parseInt(ddlEspecialidad.getValue().toString()));
        if (ddlEspecialidad.getValue().toString().equals(getSessionBean1().getSelectEspeTMP().toString())) {
            //getSessionBean1().setEspeSession(tmpEspecialidad);  
            //ddlEspecialidad.setSelected(ddlEspecialidad.getValue());
            Profesional proTmp = lista.getEspecialista(Integer.parseInt(ddlProfesionales.getValue().toString())); //Aca tengo qu enviar el profesional
            getSessionBean1().setProSession(proTmp); // aca primero guardo el profesional elejido

            profesional();
            preg();

        } else {
            // ddlEspecialidad.setSubmittedValue(2);
            // si las especialidad es diferente nomas cambio
            getSessionBean1().setSelectEspeTMP(ddlEspecialidad.getValue().toString());
            //getSessionBean1().setEspeSession(tmpEspecialidad); 
            DatosProfesional();
            preg();

        }
    }

    private void grabar() {
        Captura cap = new Captura();
        ProEspe proTmo = new ProEspe();
        Turno tpu = new Turno();
        Date d = new Date();
        Date df = new Date();
        d = calendar1.getSelectedDate();
        Integer cod = Integer.parseInt(jtsCodigo1.getText().toString());
        Integer da1 = getSessionBean1().getPacienteMy().getPacCodigo();
        proTmo = cap.GetCodPreCod(getSessionBean1().getEspeSession(), getSessionBean1().getProSession());
        Integer da2 = proTmo.getPreCod();
        Integer turmx = Integer.parseInt(lblTurnosMaximo.getText().toString());
        turmx = turmx + 1;
        Integer turN = Integer.parseInt(jtsNumTurn.getText().toString());
        tpu.setTurCodigo(cod);
        tpu.setPacCodigo(getSessionBean1().getPacienteMy());
        tpu.setPreCod(proTmo);
        tpu.setTurCita(d);
        tpu.setTurFecha(df);
        tpu.setTurHora(jtfHora.getText().toString());
        tpu.setTurResponsable("Reserva realizada por el paciente en la web");
        tpu.setTurDa1(da1);
        tpu.setTurDa2(da2);
        tpu.setTurN(turN);
        tpu.setTurValor(1);
        String turno_ma_ta = null; // guarda si eligio mañana o tarde
        if (this.radioTurn.getValue().toString().equals("1")) {
            turno_ma_ta = "Mañana";
        } else {
            turno_ma_ta = "Tarde";
        }
        tpu.setTurHorario(turno_ma_ta);
        if (turN < turmx) {
            GuardarDatos control = new GuardarDatos();


            control.grabar(tpu);
            this.labelEXITO.setText("*** LOS RESERVA HA SIDO ENVIADA CON EXITO... ***");
            this.labelEXITO.setVisible(true);
            this.labelNO.setVisible(false);


        } else {            // Mensaje que no puede guardar los datos
            this.labelNO.setText("Error en los Datos de Entrada, Por favor Ingrese Nuevamente");
            this.labelNO.setVisible(true);
            this.labelEXITO.setVisible(false);
            //limpiardatos();
        }

    }

    private void profesional() {


        Captura lista = new Captura();
        //setEspCod(Integer.parseInt(getSessionBean1().getOpcionesDDL()[0].getValue().toString()));
        List datos = null;
        datos = lista.ListarProfesinales(getSessionBean1().getEspeSession()); //todos los proEspecialidad
        Option[] OpcionesTMP = new Option[datos.size()]; // Inicializar lista de Especialidades
        this.ddlProfesionales = null;
        int var = 0;
        for (Iterator i = datos.iterator(); i.hasNext();) {

            Profesional tpu = (Profesional) i.next();

            OpcionesTMP[var] = new Option(tpu.getProCodigo(), tpu.getProPrimerNombre() + " " + tpu.getProApellidoPar() + " " + tpu.getProApellidoMar());
            var++;
        }
        ddlProfesionalesDefaultOptions.setOptions(OpcionesTMP);
        //ddlProfesionales.setSelected(getSessionBean1().getProSession().getProCodigo());
        //ddlProfesional.setSubmittedValue(var);

    }

    private void fecha() {

        datosHorario(getSessionBean1().getProSession());

    }

    public String button_action() {
        
        if ((stHor_Tar_Fin.getText().equals("00:00")) || (jtfHoraFin.getText().equals("00:00"))) {
            labelNO.setVisible(true);
            this.labelNO.setText("** El profesional seleccionado no atiende en el horario seleccionado **");
        } else {
            comparar();
            ddlProfesionales.setVisible(false);
            lblTurnosMaximo.setVisible(false);
            radioTurn.setVisible(false);
            lblTurnosMaximo.setVisible(false);
            jtfHora.setVisible(false);
            jtfHoraFin.setVisible(false);
            stHor_Tar_Inicio.setVisible(false);
            stHor_Tar_Fin.setVisible(false);
            labelNO.setVisible(false);
        }
        return null;
    }//    private void profesionalCambio() {

    public String hyperlink4_action() {
        // TODO: Replace with your code
        return null;
    }

  
//            Captura lista = new Captura();            
//            //setEspCod(Integer.parseInt(getSessionBean1().getOpcionesDDL()[0].getValue().toString()));
//            List datos = null;
//            datos = lista.ListarProfesinales(getSessionBean1().getEspeSession()); //todos los proEspecialidad
//            Option[] OpcionesTMP = new Option[datos.size()]; // Inicializar lista de Especialidades
//            this.ddlProfesionales = null;
//            int var = 0;  
//            for(Iterator i = datos.iterator(); i.hasNext();){
//               
//                Profesional tpu = (Profesional)i.next();  
//                 
//                OpcionesTMP[var]= new Option(tpu.getProCodigo(), tpu.getProPrimerNombre()+" "+tpu.getProApellidoPar() +" "+ tpu.getProApellidoMar());
//                var++;
//            }
//        ddlProfesionalesDefaultOptions.setOptions(OpcionesTMP);
//        Profesional proTmp = lista.getEspecialista(Integer.parseInt(OpcionesTMP[0].getValue().toString())); //Aca tengo qu enviar el profesional
//        getSessionBean1().setProSession(proTmp); // aca primero guardo el profesional elejido
//         ddlProfesionales.setSelected(getSessionBean1().getProSession().getProCodigo());
//    }
}

